﻿using System.Collections.Generic;
using Microsoft.Xna.Framework;
using ThinkDotNetBotApiCommon.Weapons;

namespace ThinkDotNetBotApiCommon
{
    public interface IBotController
    {
        void Move(Vector3 destinationPos);
        void Stop();
        void MoveTurret(float value);
        void MoveCannon(float value);

        bool LaunchAmmo();
        void LaunchTacticalMissile(Vector3 destination);
        bool ChangeWeapon(CannonWeaponType cannonWeaponType);
        IDictionary<CannonWeaponType, IWeaponBase> GetAllWeapons();
        IWeaponBase CurrentWeapon { get; }

        IScanableItem[] Scan(float radius);

        float TurretRotation { get; }
        void GetCannonParameters(out Vector3 centerPos, out Vector3 cannonForward);        
        bool IsTurretReady { get;  }
        Vector3 Forward { get; }
        bool IsMoving { get; }

        float CannonRotation { get; }
        bool IsCannonReady { get; }

        Vector3 Translation { get; }
        float RotationY { get; }
    }
}
